package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;

import java.util.Date;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_BUSINESS_LICENSE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COMPANY_ADDRESS;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COMPANY_INDUSTRY;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COMPANY_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COMPANY_PERSON_SIZE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COMPANY_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CONTRACT;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CONTRACT_END_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CONTRACT_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CONTRACT_START_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_COOPERATIVE_PRODUCTS;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CUSTOMER_DEMAND;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CUSTOMER_INTRODUCE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_CUSTOMER_SITUATION;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_DISTRIBUTE_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_DISTRIBUTE_OR_GET_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_DISTRIBUTE_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_EMAIL;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_ENTRY_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_ESTIMATED_DISTRIBUTE_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_ESTIMATED_SIGNING_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_FAX;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_GENDER;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_IS_PUBLIC;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_IS_SIGN;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LAST_VISIT_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_EMAIL;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_GENDER;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_PHONE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_POST_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_LEGAL_PERSON_WECHAT;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_MARK;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_MEMBER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_MEMBER_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_PHONE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_POST_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_PRODUCT_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_REMOVE_REASON;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_SIGNING_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_SOURCE_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_SOURCE_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_SOURCE_USER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_USER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.E_WECHAT;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_BUSINESS_LICENSE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COMPANY_ADDRESS;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COMPANY_INDUSTRY;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COMPANY_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COMPANY_PERSON_SIZE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COMPANY_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CONTRACT;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CONTRACT_END_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CONTRACT_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CONTRACT_START_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_COOPERATIVE_PRODUCTS;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CUSTOMER_DEMAND;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CUSTOMER_INTRODUCE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_CUSTOMER_SITUATION;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_DISTRIBUTE_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_DISTRIBUTE_OR_GET_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_DISTRIBUTE_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_EMAIL;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_ENTRY_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_ESTIMATED_DISTRIBUTE_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_ESTIMATED_SIGNING_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_FAX;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_GENDER;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_IS_PUBLIC;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_IS_SIGN;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LAST_VISIT_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_EMAIL;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_GENDER;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_PHONE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_POST_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_LEGAL_PERSON_WECHAT;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_MARK;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_MEMBER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_MEMBER_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_PHONE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_POST_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_PRODUCT_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_REMOVE_REASON;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_SIGNING_TIME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_SOURCE_NAME;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_SOURCE_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_SOURCE_USER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_TYPE;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_USER_ID;
import static org.jsola.hr.example.CrmCustomerInfoExample.N_WECHAT;

/**
 * 客户详情表
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【客户详情表】列表展示对象")
@Data
public class CrmCustomerInfoListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = N_DISTRIBUTE_NAME, example = E_DISTRIBUTE_NAME)
    private String distributeName;

    @ApiModelProperty(notes = N_IS_PUBLIC, example = E_IS_PUBLIC)
    private Boolean isPublic;

    @ApiModelProperty(notes = N_SOURCE_USER_ID, example = E_SOURCE_USER_ID)
    private String sourceUserId;

    @ApiModelProperty(notes = N_ENTRY_NAME, example = E_ENTRY_NAME)
    private String entryName;

    @ApiModelProperty(notes = N_PRODUCT_NAME, example = E_PRODUCT_NAME)
    private String productName;

    @ApiModelProperty(notes = N_NAME, example = E_NAME)
    private String name;

    @ApiModelProperty(notes = N_PHONE, example = E_PHONE)
    private String phone;

    @ApiModelProperty(notes = N_GENDER, example = E_GENDER)
    private Integer gender;

    @ApiModelProperty(notes = N_TYPE, example = E_TYPE)
    private Integer type;

    @ApiModelProperty(notes = N_EMAIL, example = E_EMAIL)
    private String email;

    @ApiModelProperty(notes = N_WECHAT, example = E_WECHAT)
    private String wechat;

    @ApiModelProperty(notes = N_FAX, example = E_FAX)
    private String fax;

    @ApiModelProperty(notes = N_POST_NAME, example = E_POST_NAME)
    private String postName;

    @ApiModelProperty(notes = N_CUSTOMER_SITUATION, example = E_CUSTOMER_SITUATION)
    private String customerSituation;

    @ApiModelProperty(notes = N_CUSTOMER_DEMAND, example = E_CUSTOMER_DEMAND)
    private String customerDemand;

    @ApiModelProperty(notes = N_CUSTOMER_INTRODUCE, example = E_CUSTOMER_INTRODUCE)
    private String customerIntroduce;

    @ApiModelProperty(notes = N_MARK, example = E_MARK)
    private String mark;

    @ApiModelProperty(notes = N_USER_ID, example = E_USER_ID)
    private String userId;

    @ApiModelProperty(notes = N_MEMBER_ID, example = E_MEMBER_ID)
    private String memberId;

    @ApiModelProperty(notes = N_MEMBER_NAME, example = E_MEMBER_NAME)
    private String memberName;

    @ApiModelProperty(notes = N_SOURCE_TYPE, example = E_SOURCE_TYPE)
    private Integer sourceType;

    @ApiModelProperty(notes = N_SOURCE_NAME, example = E_SOURCE_NAME)
    private String sourceName;

    @ApiModelProperty(notes = N_DISTRIBUTE_OR_GET_TIME, example = E_DISTRIBUTE_OR_GET_TIME)
    private Date distributeOrGetTime;

    @ApiModelProperty(notes = N_LAST_VISIT_TIME, example = E_LAST_VISIT_TIME)
    private Date lastVisitTime;

    @ApiModelProperty(notes = N_REMOVE_REASON, example = E_REMOVE_REASON)
    private String removeReason;

    @ApiModelProperty(notes = N_LEGAL_PERSON_NAME, example = E_LEGAL_PERSON_NAME)
    private String legalPersonName;

    @ApiModelProperty(notes = N_LEGAL_PERSON_PHONE, example = E_LEGAL_PERSON_PHONE)
    private String legalPersonPhone;

    @ApiModelProperty(notes = N_LEGAL_PERSON_GENDER, example = E_LEGAL_PERSON_GENDER)
    private Integer legalPersonGender;

    @ApiModelProperty(notes = N_LEGAL_PERSON_EMAIL, example = E_LEGAL_PERSON_EMAIL)
    private String legalPersonEmail;

    @ApiModelProperty(notes = N_LEGAL_PERSON_WECHAT, example = E_LEGAL_PERSON_WECHAT)
    private String legalPersonWechat;

    @ApiModelProperty(notes = N_LEGAL_PERSON_POST_NAME, example = E_LEGAL_PERSON_POST_NAME)
    private String legalPersonPostName;

    @ApiModelProperty(notes = N_COMPANY_NAME, example = E_COMPANY_NAME)
    private String companyName;

    @ApiModelProperty(notes = N_COMPANY_ADDRESS, example = E_COMPANY_ADDRESS)
    private String companyAddress;

    @ApiModelProperty(notes = N_COMPANY_TYPE, example = E_COMPANY_TYPE)
    private Integer companyType;

    @ApiModelProperty(notes = N_COMPANY_PERSON_SIZE, example = E_COMPANY_PERSON_SIZE)
    private Integer companyPersonSize;

    @ApiModelProperty(notes = N_COMPANY_INDUSTRY, example = E_COMPANY_INDUSTRY)
    private String companyIndustry;

    @ApiModelProperty(notes = N_ESTIMATED_SIGNING_TIME, example = E_ESTIMATED_SIGNING_TIME)
    private Date estimatedSigningTime;

    @ApiModelProperty(notes = N_SIGNING_TIME, example = E_SIGNING_TIME)
    private Date signingTime;

    @ApiModelProperty(notes = N_ESTIMATED_DISTRIBUTE_TIME, example = E_ESTIMATED_DISTRIBUTE_TIME)
    private Date estimatedDistributeTime;

    @ApiModelProperty(notes = N_DISTRIBUTE_TIME, example = E_DISTRIBUTE_TIME)
    private Date distributeTime;

    @ApiModelProperty(notes = N_CONTRACT, example = E_CONTRACT)
    private String contract;

    @ApiModelProperty(notes = N_CONTRACT_NAME, example = E_CONTRACT_NAME)
    private String contractName;

    @ApiModelProperty(notes = N_BUSINESS_LICENSE, example = E_BUSINESS_LICENSE)
    private String businessLicense;

    @ApiModelProperty(notes = N_CONTRACT_START_TIME, example = E_CONTRACT_START_TIME)
    private Date contractStartTime;

    @ApiModelProperty(notes = N_CONTRACT_END_TIME, example = E_CONTRACT_END_TIME)
    private Date contractEndTime;

    @ApiModelProperty(notes = N_COOPERATIVE_PRODUCTS, example = E_COOPERATIVE_PRODUCTS)
    private String cooperativeProducts;

    @ApiModelProperty(notes = N_IS_SIGN, example = E_IS_SIGN)
    private Boolean isSign;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = "是否可以编辑")
    private Boolean isEdit;


}

